import 'dart:io';

import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:template/services/http_util.dart';

import 'app_theme.dart';
import 'navigation_home_screen.dart';

void main() async {
  // 初始化全局导航Key
  HttpUtil.navigatorKey = GlobalKey<NavigatorState>();
  WidgetsFlutterBinding.ensureInitialized();

  await SystemChrome.setPreferredOrientations(<DeviceOrientation>[
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown
  ]).then((_) => runApp(MyApp()));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.transparent,
      statusBarIconBrightness: Brightness.dark,
      statusBarBrightness:
      !kIsWeb && Platform.isAndroid ? Brightness.dark : Brightness.light,
      systemNavigationBarColor: Colors.white,
      systemNavigationBarDividerColor: Colors.transparent,
      systemNavigationBarIconBrightness: Brightness.dark,
    ));

    return MaterialApp(
      title: 'Ystarry Flutter Demo',
      debugShowCheckedModeBanner: false,
      navigatorKey: HttpUtil.navigatorKey,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        textTheme: AppTheme.textTheme,
        platform: TargetPlatform.iOS,
      ),
      // theme: ThemeData(
      //   primarySwatch: MaterialColor(0xFF00D27B, {
      //     50: Color(0xFFE0F9EB),
      //     100: Color(0xFFB3F0D4),
      //     200: Color(0xFF80E7BD),
      //     300: Color(0xFF4DE09F),
      //     400: Color(0xFF26D88A),
      //     500: Color(0xFF00D27B), // 主颜色
      //     600: Color(0xFF00B870),
      //     700: Color(0xFF00A464),
      //     800: Color(0xFF009559),
      //     900: Color(0xFF007A44),
      //   }),
      //   visualDensity:
      //       VisualDensity.adaptivePlatformDensity, // 这个属性用于设置应用程序的视觉密度。
      //   // useMaterial3: true, // 这表示应用将使用 Material Design 3 主题。
      //   //Material Design 3 是 Google 最新的设计系统，提供了更现代化的视觉效果和更多的自定义选项，比如新的按钮、
      //   //卡片和布局元素。通过设置 useMaterial3: true，应用将采用这些新的设计风格
      //   //定义了应用的主要颜色方案。
      //   colorScheme: ColorScheme(
      //     primary: Color.fromRGBO(0, 210, 123, 1), // 设置主颜色
      //     primaryContainer: Color.fromRGBO(0, 210, 123, 1), // 主容器颜色
      //     secondary: Color.fromRGBO(0, 210, 123, 1), // 设置副颜色（如果你需要）
      //     secondaryContainer: Color.fromRGBO(0, 210, 123, 1), // 副容器颜色（如果你需要）
      //     surface: Colors.white, // 设置background颜色
      //     error: Colors.red, // 错误颜色
      //     onPrimary: Colors.white, // 主颜色上的文本颜色
      //     onSecondary: Colors.white, // 副颜色上的文本颜色
      //     onSurface: Colors.black, // 背景上的文本颜色
      //     onError: Colors.white, // 错误颜色上的文本颜色
      //     brightness: Brightness.light, // 亮度模式
      //   ),
      // ),
      home: NavigationHomeScreen(),
    );
  }
}

class HexColor extends Color {
  HexColor(final String hexColor) : super(_getColorFromHex(hexColor));

  static int _getColorFromHex(String hexColor) {
    hexColor = hexColor.toUpperCase().replaceAll('#', '');
    if (hexColor.length == 6) {
      hexColor = 'FF' + hexColor;
    }
    return int.parse(hexColor, radix: 16);
  }
}